Using Yahoo! Pipes to create an RSS feed of Calendar Events

Basic approach:

Use the Pipes "URL Builder" module to specify the Events API call.  Connect the output to a "Fetch Data" module to parse the API output.  Last, connect that module to a "Create RSS" module to map certain fields to standard feed fields.

Sample steps:

Here are detailed steps that will give you a sense of what is and is not possible using Pipes.  These steps are intended to be customized based on your needs.

  1. URL Builder module(s): Used to compose the Events API call.  The "Base:" is the API path "/site/CROrgEventAPI" and parameters are specified in the list of "Query parameters".  Note that although the "Fetch Data" module can parse either XML or JSON, set the API's "response_format" to "json" because the XML parsing requires the initial "<?xml ...?>" element and the API doesn't include that in the XML response.  Called the "getMonthEvents" API method which retrieves all events for a given month.
  2. Fetch Data module(s): Used to parse the JSON response and find the events.  Set the "Path to item list" field to "getMonthEventsResponse.event" to tell the module which elements of the response are to be fetched.
  3. To publicize events with a little more lead time, make 3 sets of these 2 modules that request events for 3 different months and joined them with a "Union" module (see screen capture below).  This module can merge up to 5 input sources into a single output stream.  Note that because the Events API doesn't have a way to specify relative time frames (e.g., current month, next month, next n months), this pipe would need to be periodically manually updated to change the month and/or year parameters of the API calls.
  4. Regex module: Use this module to prevent JSON parsing from corrupting some HTML, turning "</" into "<\/" (that's backslash slash, not an upper-case vee).  (This module works for the event description, but similar attempts to fix the same problem in ticket class descriptions do not work as expected.)
  5. Create RSS module: This is used to map Events API data fields into some standard RSS feed fields.

Screen Capture:

Yahoo! Pipes Screen Capture

Copyright 2010 Convio, Inc.